/* 
 * File:   ProcesoNotificacionABMArchivos.h
 * Author: max
 *
 * Created on June 21, 2013, 10:53 AM
 */

#ifndef PROCESONOTIFICACIONABMARCHIVOS_H
#define	PROCESONOTIFICACIONABMARCHIVOS_H

#include "server_Proceso.h"
#include "server_IAdministradorSesiones.h"
#include "server_IAdministradorRepositorioCentral.h"
#include "common_Mutex.h"
#include "common_Repositorio.h"

using namespace TP;
using namespace TP::Archivos;

namespace TP { namespace Procesos {
    
class ProcesoNotificacionABMArchivos : public Proceso {
    
public:
    ProcesoNotificacionABMArchivos(const uint32_t &pId, IAdministradorSesiones* pAdministradorSesiones, IAdministradorRepositorioCentral* pAdmRepositorioCentral);
    
    virtual ~ProcesoNotificacionABMArchivos();
    
protected:
    virtual void tarea();    
    
    void NotificarEventos();
    
    void NotificarEventosDelRepositorio (Sesion* pSesion, Repositorio* pRepositorio);

    void NotificarEventosArchivosNuevos (Sesion* pSesion, Repositorio* pRepositorio);
    
    void NotificarEventosArchivosEliminados(Sesion* pSesion, Repositorio* pRepositorio);
    
    void NotificarEventosArchivosModificados (Sesion* pSesion, Repositorio* pRepositorio);
    
private:
    IAdministradorSesiones* _administradorSesiones;
    IAdministradorRepositorioCentral* _admRepositorioCentral;
    
};

}}

#endif	/* PROCESONOTIFICACIONABMARCHIVOS_H */

